
Public Class UsuarioSistema
    Private Shared _CodigoCD As String
    Private Shared _Codigo As Integer
    Private Shared _NombreUsuario As String    
    Private Shared _CodigoTipoRolUsuario As String
    Private Shared _NombreTipoRolUsuario As String
    Private Shared _NombreCompleto As String
    Private Shared _Bloqueado As Boolean
    Private Shared _EsUsuarioActiveDirectory As Boolean
    Private Shared _Correo As String
    Private Shared _ContrasenaCorrecta As Boolean

    Public Enum RolesSistema
        Administrador
        Preventista
        Supervisor
        GerenciaDepartamental
        GerenciaNacional
        SecretariaDepartamental
    End Enum
    Public Shared Property CodigoCD() As String
        Get
            Return _CodigoCD
        End Get
        Set(ByVal value As String)
            If _CodigoCD = value Then
                Return
            End If
            _CodigoCD = value
        End Set
    End Property
    Public Shared Property Codigo() As Integer
        Get
            Return _Codigo
        End Get
        Set(ByVal value As Integer)
            If _Codigo = value Then
                Return
            End If
            _Codigo = value
        End Set
    End Property
    Public Shared Property NombreUsuario() As String
        Get
            Return _NombreUsuario
        End Get
        Set(ByVal value As String)
            If _NombreUsuario = value Then
                Return
            End If
            _NombreUsuario = value
        End Set
    End Property
    Public Shared Property CodigoTipoRolUsuario() As String
        Get
            Return _CodigoTipoRolUsuario
        End Get
        Set(ByVal value As String)
            If _CodigoTipoRolUsuario = value Then
                Return
            End If
            _CodigoTipoRolUsuario = value
        End Set
    End Property
    Public Shared Property NombreTipoRolUsuario() As String
        Get
            Return _NombreTipoRolUsuario
        End Get
        Set(ByVal value As String)
            If _NombreTipoRolUsuario = Value Then
                Return
            End If
            _NombreTipoRolUsuario = Value
        End Set
    End Property
    Public Shared Property NombreCompleto() As String
        Get
            Return _NombreCompleto
        End Get
        Set(ByVal value As String)
            If _NombreCompleto = value Then
                Return
            End If
            _NombreCompleto = value
        End Set
    End Property
    Public Shared Property Bloqueado() As Boolean
        Get
            Return _Bloqueado
        End Get
        Set(ByVal value As Boolean)
            If _Bloqueado = value Then
                Return
            End If
            _Bloqueado = value
        End Set
    End Property
    Public Shared Property EsUsuarioActiveDirectory() As Boolean
        Get
            Return _EsUsuarioActiveDirectory
        End Get
        Set(ByVal value As Boolean)
            If _EsUsuarioActiveDirectory = value Then
                Return
            End If
            _EsUsuarioActiveDirectory = value
        End Set
    End Property
    Public Shared Property Correo() As String
        Get
            Return _Correo
        End Get
        Set(ByVal value As String)
            If _Correo = value Then
                Return
            End If
            _Correo = value
        End Set
    End Property
    Public Shared Property ContrasenaCorrecta() As Boolean
        Get
            Return _ContrasenaCorrecta
        End Get
        Set(ByVal value As Boolean)
            If _ContrasenaCorrecta = Value Then
                Return
            End If
            _ContrasenaCorrecta = Value
        End Set
    End Property

    Public Shared Function CargarUsuario(ByVal NombreUsuario As String) As Boolean

        Dim Comando As New CAD.Usuario.Usuario_GET(CAD.BaseDatos.Conexion)
        Dim Tabla As New DataTable

        Comando.LoadTable(Tabla, NombreUsuario)

        If Tabla.Rows.Count > 0 Then

            UsuarioSistema.CodigoCD = Tabla.Rows(0).Item("CodigoCD")
            UsuarioSistema.Codigo = Tabla.Rows(0).Item("Codigo")
            UsuarioSistema.NombreUsuario = Tabla.Rows(0).Item("NombreUsuario")
            UsuarioSistema.CodigoTipoRolUsuario = Tabla.Rows(0).Item("CodigoTipoRolUsuario")
            UsuarioSistema.NombreTipoRolUsuario = Tabla.Rows(0).Item("NombreTipoRolUsuario")
            UsuarioSistema.NombreCompleto = Tabla.Rows(0).Item("NombreCompleto")
            UsuarioSistema.Bloqueado = Tabla.Rows(0).Item("Bloqueado")
            UsuarioSistema.EsUsuarioActiveDirectory = Tabla.Rows(0).Item("EsUsuarioActiveDirectory")
            UsuarioSistema.Correo = Tabla.Rows(0).Item("Correo")
            UsuarioSistema.ContrasenaCorrecta = Tabla.Rows(0).Item("ContrasenaCorrecta")

            Return True

        Else

            Return False

        End If

    End Function
    Public Shared Function Autentificacion(ByVal NombreUsuario As String, ByVal Contrasena As String) As Boolean

        Dim Comando As New CAD.Usuario.Usuario_Autentificacion(CAD.BaseDatos.Conexion)
        Dim Tabla As New DataTable

        Comando.LoadTable(Tabla, NombreUsuario, Contrasena)

        If Tabla.Rows.Count > 0 Then

            UsuarioSistema.CodigoCD = Tabla.Rows(0).Item("CodigoCD")
            UsuarioSistema.Codigo = Tabla.Rows(0).Item("Codigo")
            UsuarioSistema.NombreUsuario = Tabla.Rows(0).Item("NombreUsuario")
            UsuarioSistema.CodigoTipoRolUsuario = Tabla.Rows(0).Item("CodigoTipoRolUsuario")
            UsuarioSistema.NombreTipoRolUsuario = Tabla.Rows(0).Item("NombreTipoRolUsuario")
            UsuarioSistema.NombreCompleto = Tabla.Rows(0).Item("NombreCompleto")
            UsuarioSistema.Bloqueado = Tabla.Rows(0).Item("Bloqueado")
            UsuarioSistema.EsUsuarioActiveDirectory = Tabla.Rows(0).Item("EsUsuarioActiveDirectory")
            UsuarioSistema.Correo = Tabla.Rows(0).Item("Correo")
            UsuarioSistema.ContrasenaCorrecta = Tabla.Rows(0).Item("ContrasenaCorrecta")


            Return True

        Else

            Return False

        End If

    End Function
    Public Shared Sub ActualizarContrasena(ByVal Usuario As String, ByVal Contrasena As String)

        Dim comando As New CAD.Usuario.Usuario_ActualizarContrasena(CAD.BaseDatos.Conexion)

        comando.ExecuteNonQuery(Usuario, Contrasena)

    End Sub

End Class
